/* 
能力1： 从对象里查找属性值， 给了对象和key， 使用对象[key]的方式返回
能力2：js里识别a.b.c的能力。 劈开.字符串，然后一层层取值。
*/
/* 
let a = {
    b: {
        c: 1
    }
}



/* 
把a.b.c 转换为 ['a', 'b', 'c']
然后循环 ['a', 'b', 'c']
每循环一层，从对象里取出来一个值。 
判断是否有值，没有就return结束
有值 就继续
直到最后一层，把值直接拿出来返回就行。
*/
export default function lookup(dataObj, keyName) {
    if (dataObj === undefined || dataObj === null) {
        return undefined;
    }
    if (keyName.indexOf('.') !== -1 && keyName !== '.') {
        let arr = keyName.split('.');
        let nowDataObj = dataObj;
        for (let index = 0; index < arr.length; index++) {
            const element = arr[index];
            let r = nowDataObj[element];
            if (!r) {
                return; // 如果某一层属性不存在，返回undefined
            }
            nowDataObj = r;
        }
        return nowDataObj;
    }else {
        return dataObj[keyName]; // 如果没有点，直接返回对应的值
    }


}